Scheduler for UWP
ラベルの連結
C1Scheduler の使い方 > データ連結 > ラベルの連結

独自のラベルコレクションを作成し、C1Scheduler コントロールのラベルデータストレージにそれらを連結できます。たとえば、カスタム Label クラスを定義するか、C1.C1Schedule.Label クラスを使用します。

C#
コードのコピー
public class MyLabel
 {
     public string Id { get; set; }
     public string Text { get; set; }
     public string Color { get; set; }
 }

Id プロパティや Index プロパティは必須でありませんが、データを保存する目的では Id(Guid/string)または Index(int)のいずれかの識別子を各ラベルに入れる必要があります。これにより、アプリケーションを次回実行するまで予定のラベル情報を保存できます。

ラベルの色

ラベルの色を指定するために、C1Scheduler は「255,255,255,255」などの文字列値を使用します。これは、アルファ、赤、青、緑の各バイトチャンネルを表します。これにより、使用可能なすべての色に対して、シリアライズと最適なストレージ容量を利用できます。

コードでラベルのコレクションを作成し、それを LabelStorage.DataSource プロパティに連結します。また、IDTextColor の各プロパティに適切なマッピングを設定する必要があります。

C# でコードを書く場合

C#
コードのコピー

// ラベルのリストを作成します
 List<MyLabel> Labels = new List<MyLabel>();
 Labels.Add(new MyLabel { Text = "Lime", Color = "255,164,196,0" });
 Labels.Add(new MyLabel { Text = "Green", Color = "255,96,169,23" });
 Labels.Add(new MyLabel { Text = "Teal", Color = "255,0,171,169" });
 Labels.Add(new MyLabel { Text = "Cyan", Color = "255,27,161,226" });
 Labels.Add(new MyLabel { Text = "Purple", Color = "255,170,0,255" });
 Labels.Add(new MyLabel { Text = "Pink", Color = "255,244,141,208" });
 Labels.Add(new MyLabel { Text = "Red", Color = "255,229,20,0" });
 Labels.Add(new MyLabel { Text = "Mango", Color = "255,240,150,9" });
 Labels.Add(new MyLabel { Text = "Yellow", Color = "255,227,200,0" });
 Labels.Add(new MyLabel { Text = "Olive", Color = "255,109,135,100" });
 Labels.Add(new MyLabel { Text = "Mauve", Color = "255,118,96,138" });

 

// ラベルデータストレージとマッピングを設定します
 c1Scheduler.DataStorage.LabelStorage.DataSource = Labels;
 c1Scheduler.DataStorage.LabelStorage.Mappings.TextMapping.MappingName = "Text";
 c1Scheduler.DataStorage.LabelStorage.Mappings.ColorMapping.MappingName = "Color";
 c1Scheduler.DataStorage.LabelStorage.Mappings.IdMapping.MappingName = "Id";
 Alternatively, you can also data bind in XAML. This snippet assumes you have a property named “Labels” in view model declared as a resource elsewhere in your project.
 <c1sched:C1Scheduler x:Name="c1Scheduler" AppointmentForeground="Black">
     <!-- ラベルストレージをマップします -->
     <c1sched:NestedPropertySetter PropertyName="DataStorage.LabelStorage.DataSource"
                                   Value="{Binding Path = Labels, Source={StaticResource mainViewModel}}" />
     <c1sched:NestedPropertySetter PropertyName="DataStorage.LabelStorage.Mappings.TextMapping.MappingName"
                                   Value="Text"/>
     <c1sched:NestedPropertySetter PropertyName="DataStorage.LabelStorage.Mappings.ColorMapping.MappingName"
                                   Value="Color"/>
     <c1sched:NestedPropertySetter PropertyName="DataStorage.LabelStorage.Mappings.IdMapping.MappingName"
                                   Value="Id"/>
 </c1sched:C1Scheduler>